In [1]:
from pymatgen import Element
symbol = "Fe"
el = Element(symbol)
elec_structure = el.full_electronic_structure
In [2]:
%matplotlib inline
from matplotlib.pyplot import figure, show, rc, grid
rc('grid', color='#316931', linewidth=0, linestyle='-')
rc('xtick', labelsize=15)
rc('ytick', labelsize=15)
import numpy as np
# make a square figure
fig = figure(figsize=(10, 10))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#d5de9c')
rticks = []
rlabels = []
for i, shell in enumerate(elec_structure):
#Draw the shell
r = 0.5 * (i + 1)
rad = [r] * 1000
theta = [2 * np.pi * j / 1000 for j in xrange(1000)]
ax.plot(theta, rad, 'k-', lw=1)
#Draw the electrons
rad = [r] * shell[2]
theta = [2 * np.pi * j / shell[2] for j in xrange(shell[2])]
ax.plot(theta, rad, 'o', markersize=15)
rticks.append(r)
rlabels.append("{}{}".format(shell[0], shell[1]))
ax.set_rmax(r + 0.5)
ax.set_thetagrids([0, 90, 180, 270], [""]*4, color='k')
ax.set_rgrids(rticks, rlabels)
ax.set_title("Electronic structure of {}".format(symbol), fontsize=20)
grid(True)
show()
In [2]: